In current data storage technology, storage resource of a memory is usually divided by taking a block as a unit. That is to say, the memory is divided into many regions in a fixed size. Each region is a block. In current technology, the memory is usually divided into two kinds of blocks, one kind is basic block, and the other kind is overflow block. The basic block is configured to make a Hash calculating location for a convenience of data location. The overflow block is configured to store overflow data when the basic block is not enough.
In current technology, when data is stored in a memory, an offset indicating a memory location of the block in the memory is obtained by doing a Hash calculation to a key of the data firstly and then doing modulus operation. The data is written into a block in the offset indicating a memory location of the block in the memory. If there is data stored in the block in the offset indicating a memory location of the block in the memory, the data in the block in offset serve as old data. The old data are firstly read, then combined with new data, and written with the new data into the block again. If the block in the offset indicating a memory location of the block in the memory is full, the data left are written into an overflow block, and an address of the overflow block is stored at end of the block in the offset indicating a memory location of the block in the memory.
Shortcomings in the current technology are described in the following.
When the data is written, at least one input/output (I/O) operation to the memory is needed every time when writing data. Moreover, when the block to be written includes data, one more read operation is needed in order to combine the old data with the new data. Thus, more I/O operations are induced. From the above description, in current technology more I/O operation times of writing operation to the memory are needed. Thus an efficiency of writing operation to the memory is low. The current technology does not support the memory well, especially to the memory such as solid state disk (SSD) of which life and property are limited to an erasure times and random writing. When data is written, frequent I/O operation may not only lead to low efficiency of writing operation to the SSD but also seriously reduce the life of the SSD.